package com.westos.calcv3.el;

import org.springframework.expression.EvaluationContext;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.ParserContext;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;
import org.springframework.validation.ObjectError;

import java.util.HashMap;
import java.util.Map;

/**
 * EL表达式的演示
 */
public class ElClient {



    public static void main(String[] args){
        //定义el表达式的字符串
        String elstr="'hello'";
        //定义el表达式解析器
        ExpressionParser parser=new SpelExpressionParser();
        String result = parser.parseExpression(elstr).getValue(String.class);
        System.out.println(result);
        elstr="1+2";
        System.out.println(parser.parseExpression(elstr).getValue(Integer.class));
        Map context=new HashMap<String,Object>();
        context.put("name","张三");
        elstr="'hello,'+#root.get('name')";

        result=(String)parser.parseExpression(elstr).getValue(context);
        System.out.println(result);
        elstr="#root";
        System.out.println(parser.parseExpression(elstr).getValue(context));
    }
}